# MergeSortFiles
Задание для ShiftLab

- Version Java: 17
- Version Maven: 3.8.1
- Зависимости:
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.24</version>
      <scope>provided</scope>
    </dependency>

## Команда для запуска
```
 mvn compile exec:java -Dexec.mainClass="Main" -Dexec.args="[Аргументы программы]"
```
 
 ## Аргументы программы:

0. Режим сортировки (опционально, обязательно идёт 1ым, если он присутствует в параметрах)
- -a по возрастанию (*default*)
- -d по убыванию
1. Тип данных
- -i для работы с целыми числами
- -s для работы со строками
2. Имя выходного файла
3. Имена входных файлов для сортировки

### Примеры вводных args: 
- sort-it.exe -a -i out.txt in.txt (для целых чисел по возрастанию) 
- sort-it.exe -s out.txt in1.txt in2.txt in3.txt (для строк по возрастанию)
- sort-it.exe -d -s out.txt in1.txt in2.txt (для строк по убыванию)

# Описание
Данная программа сортирует файлы слиянием.
В моей реализации, если встречается ошибка порядка, то эту ошибку мы просто не записываем в следующий файл и идём дальше.
(Например 100 200 300 400 1 500 600 -> 1 выбывает)

## Примечания

Предполагается, что входные файлы отсортированны в порядке,
требуемым для выходного файла.
Целочисленные файлы, должны содержать целые числа, ограниченные типом int.

Также если файлы содержат обратный от нужного порядок, то берутся только первые элементы из них(учитывая, что порядок соблюдён)

Строки с пробелами считаются ошибкой, строка в таком случае пропускается и файл проверяется дальше.
##
Результатом работы программы должен являться новый файл(или же он будет перезаписан) с объединенным содержимым
входных файлов, отсортированным по возрастанию или убыванию путем сортировки слиянием.

